package com.hsxc.cdz.base.dao;

import java.util.List;
import java.util.Map;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.hsxc.cdz.base.bean.Pile;

/**
 * 、
 *
 * @author 刘力文
 *         操作充电桩数据的读写
 */
@Repository
public class PileDao {

    //==========================================================================
    //自动注入SqlSessionTemplate类的实例
    @Autowired
    private SqlSessionTemplate sqlSessionTemplate;

    //==========================================================================
    //操作充电桩数据库表的增，删，改，查。

    /**
     * 更新充电桩数据
     *
     * @param pile 充电桩数据
     * @return 更新数据的充电桩的数量
     */
    public int updatePile(Pile pile) {
        return sqlSessionTemplate.update("updatePile", pile);
    }

    /**
     * 插入充电桩
     *
     * @param chargePile
     * @return
     */
    public int insertRegister(Pile chargePile) {
        return sqlSessionTemplate.insert("insertRegister", chargePile);
    }

    /**
     * 根据电桩数据查询单个电桩的全部数据
     *
     * @param pile 查询条件组成电桩部分数据
     * @return pile：单个电桩的完整数据
     */
    public Pile selectPile(Pile pile) {
        return sqlSessionTemplate.selectOne("selectPile", pile);
    }

    public List<Pile> getPilesByStationNo(Pile pile) {
        return sqlSessionTemplate.selectList("selectPile", pile);
    }

    public List<Pile> selectPileByTel(Pile pile) {
        return sqlSessionTemplate.selectList("selectPile", pile);
    }

    /**
     * 根据电桩的数据查询多个电桩数据
     *
     * @param pile 查询条件组成电桩的部分数据
     * @return pile： 多个电桩的完整数据
     */
    public List<Pile> selectPiles(Pile pile) {
        return sqlSessionTemplate.selectList("selectPile", pile);
    }

    /**
     * 根据充电桩数据删除该充电桩
     *
     * @param pile
     * @return
     */
    public int deletePile(Pile pile) {
        return sqlSessionTemplate.delete("deletePile", pile);

    }

    /**
     * 根据经纬度范围获取电站数量统计信息
     *
     * @param map
     * @return
     */
    public List<Map<String, Object>> selByLatlong(Map<String, Double> map) {
        return sqlSessionTemplate.selectList("", map);
    }
}

